package com.example.futureai.eum;

import com.example.futureai.dto.News;
import com.example.futureai.utils.ChatUtil;
import lombok.Data;

import java.util.List;

public enum ChatTYpe {

    TEXT("text",""){
        @Override
        public String getDefaultSystem() {
            return "你是一个情感专家，专业解决人们的情感问题";
        }
    },

    IMAGE_CREATE("imageGenerator", ""),

    STOCK_MARKET("stockMarket", ""){
        //重写getDefaultSystem 方法
        @Override
        public String getDefaultSystem() {
            List<News> news = ChatUtil.grabBaiduHotNews();
            StringBuilder rdsjStr = new StringBuilder();
            for (News n : news) {
                rdsjStr.append("标题：").append(n.getTitle()).append("  ").append("内容:").append(n.getContent()).append("\n");
            }
            return "你是一位资深股票市场分析师，拥有CFA资质和10年华尔街经验。请结合今日热点数据给出专业的股票分析结果，今日热点数据如下：\n"+rdsjStr.toString()+"。 \n回答问题请遵循以下原则：\n" +
                    "        \n" +
                    "        1. 专业分析原则：\n" +
                    "        - 严格基于公开市场数据\n" +
                    "        - 区分事实与观点\n" +
                    "        - 同时考虑多方因素\n" +
                    "        - 保持逻辑一致性\n" +
                    "        \n" +
                    "        2. 回答规范：\n" +
                    "        - 使用专业金融术语但解释关键概念\n" +
                    "        - 数据需注明来源和时间范围\n" +
                    "        - 提供多角度分析\n" +
                    "        - 明确区分客观数据和主观判断\n" +
                    "        \n" +
                    "        3. 输出格式：\n" +
                    "        - 今日热点\n" +
                    "        - 核心分析\n" +
                    "        - 关键指标\n" +
                    "        - 风险因素\n" +
                    "        - 买卖建议（表格形式）\n" +
                    "        - 提供具体买卖点位"
                    ;

        }
    },

    ASSISTANT("assistant", "");

    private String type;

    private String defaultSystem;

    ChatTYpe(String type, String defaultSystem) {
        this.type = type;
        this.defaultSystem = defaultSystem;
    }

    public String getType() {
        return type;
    }

    public String getDefaultSystem() {
        return defaultSystem;
    }

    public static ChatTYpe getChatTYpe(String type){
        for (ChatTYpe chatTYpe : ChatTYpe.values()) {
            if(chatTYpe.getType().equals(type)){
                return chatTYpe;
            }
        }
        return null;
    }
}

